package com.example.rbacmanage.vo;

import lombok.Data;

import java.util.List;

/**
 * 代码生成配置表单
 *
 * @author Ray
 * @since 2.10.0
 */
public class GenConfigForm {

    //主键
    private Long id;

    //表名
    private String tableName;

    //业务名
    private String businessName;

    //模块名
    private String moduleName;

    //包名
    private String packageName;

    //实体名
    private String entityName;

    //作者
    private String author;

    //上级菜单ID
    private Long parentMenuId;

    //字段配置列表
    private List<FieldConfig> fieldConfigs;

    //后端应用名
    private String backendAppName;

    //前端应用名
    private String frontendAppName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getBusinessName() {
        return businessName;
    }

    public void setBusinessName(String businessName) {
        this.businessName = businessName;
    }

    public String getModuleName() {
        return moduleName;
    }

    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }

    public String getPackageName() {
        return packageName;
    }

    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }

    public String getEntityName() {
        return entityName;
    }

    public void setEntityName(String entityName) {
        this.entityName = entityName;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public Long getParentMenuId() {
        return parentMenuId;
    }

    public void setParentMenuId(Long parentMenuId) {
        this.parentMenuId = parentMenuId;
    }

    public List<FieldConfig> getFieldConfigs() {
        return fieldConfigs;
    }

    public void setFieldConfigs(List<FieldConfig> fieldConfigs) {
        this.fieldConfigs = fieldConfigs;
    }

    public String getBackendAppName() {
        return backendAppName;
    }

    public void setBackendAppName(String backendAppName) {
        this.backendAppName = backendAppName;
    }

    public String getFrontendAppName() {
        return frontendAppName;
    }

    public void setFrontendAppName(String frontendAppName) {
        this.frontendAppName = frontendAppName;
    }

    //字段配置
    public static class FieldConfig {

        //主键
        private Long id;

        //列名
        private String columnName;

        //列类型
        private String columnType;

       //字段名
        private String fieldName;

        //字段排序
        private Integer fieldSort;

        //字段类型
        private String fieldType;

        //字段描述
        private String fieldComment;

        //是否在列表显示
        private Integer isShowInList;

        //是否在表单显示
        private Integer isShowInForm;

        //是否在查询条件显示
        private Integer isShowInQuery;

        //是否必填
        private Integer isRequired;

        //最大长度
        private Integer maxLength;

        //表单类型
        private Integer formType;

        //查询类型
        private Integer queryType;

        //字典类型
        private String dictType;

        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }

        public String getColumnName() {
            return columnName;
        }

        public void setColumnName(String columnName) {
            this.columnName = columnName;
        }

        public String getColumnType() {
            return columnType;
        }

        public void setColumnType(String columnType) {
            this.columnType = columnType;
        }

        public String getFieldName() {
            return fieldName;
        }

        public void setFieldName(String fieldName) {
            this.fieldName = fieldName;
        }

        public Integer getFieldSort() {
            return fieldSort;
        }

        public void setFieldSort(Integer fieldSort) {
            this.fieldSort = fieldSort;
        }

        public String getFieldType() {
            return fieldType;
        }

        public void setFieldType(String fieldType) {
            this.fieldType = fieldType;
        }

        public String getFieldComment() {
            return fieldComment;
        }

        public void setFieldComment(String fieldComment) {
            this.fieldComment = fieldComment;
        }

        public Integer getIsShowInList() {
            return isShowInList;
        }

        public void setIsShowInList(Integer isShowInList) {
            this.isShowInList = isShowInList;
        }

        public Integer getIsShowInForm() {
            return isShowInForm;
        }

        public void setIsShowInForm(Integer isShowInForm) {
            this.isShowInForm = isShowInForm;
        }

        public Integer getIsShowInQuery() {
            return isShowInQuery;
        }

        public void setIsShowInQuery(Integer isShowInQuery) {
            this.isShowInQuery = isShowInQuery;
        }

        public Integer getIsRequired() {
            return isRequired;
        }

        public void setIsRequired(Integer isRequired) {
            this.isRequired = isRequired;
        }

        public Integer getMaxLength() {
            return maxLength;
        }

        public void setMaxLength(Integer maxLength) {
            this.maxLength = maxLength;
        }

        public Integer getFormType() {
            return formType;
        }

        public void setFormType(Integer formType) {
            this.formType = formType;
        }

        public Integer getQueryType() {
            return queryType;
        }

        public void setQueryType(Integer queryType) {
            this.queryType = queryType;
        }

        public String getDictType() {
            return dictType;
        }

        public void setDictType(String dictType) {
            this.dictType = dictType;
        }
    }
}
